package com.kaifamiao.month03.day0310;

import java.util.Arrays;

public class BinarySearch {

    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        Arrays.sort(array);
//        Arrays.binarySearch(array, 2);
        int i = binarySearch(array,0, array.length - 1,2);
        System.out.println(i);
    }

    /**
     * 递归实现二分法查找
     * @param a 需要查找的数组
     * @param left  开始查找的位置
     * @param right  要查找的最大的位置
     * @param key 想要查找的数字
     * @return 数字所在的下标
     */
    public static int binarySearch(int[] a,int left, int right,int key){
        int mid = (left + right) / 2;
        if (a[mid] == key) {
            return mid;
        }
        if (left < right) {
            if (a[mid] < key) {
                return binarySearch(a, mid + 1,right,key);
            }else if (a[mid] > key) {
                return binarySearch(a, left,mid - 1,key);
            }
        }else {
            return -1;
        }
        return -1;
    }
}
